iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 1
0
自我挑戰組

從爬蟲到架站系列 第 6

Day 5: 從爬蟲到架站-傳送資料(2)

  • 分享至 

  • xImage
  •  

前面做好了選單了,接著需要使用js取得球員名稱並且傳給Flask,Flask再從Firebase取得球員的相關資料傳到前端。


function select_player(){
    let p = $("#player").val();

    if(p!=='選擇球員'){
        $.ajax({
        type: 'POST',
        url: "/getchartinfo",
        data: {"p":p},
        success: function (result) {
                console.log(result);
            }
        });
    }
}

因為我在加選項時有多加一個選擇球員,所以我必須要先篩選掉,而url我命名為getchartinfo,那Flask端的url也必須同名稱,接著data內容就是取得球員的名稱並且傳給Flask的,最後我先將結果打印出來,之後再進行處理。

接著再回到app.py,必須創建一個getchartinfo,跟上次的select_team一樣。

app.py

from db_connect import get_hitter_stat
@app.route('/getchartinfo', methods=['POST'])
def send_stat():
    player = str(request.form.getlist('p')[0])
    stat = get_hitter_stat(player)
    if player:
        chart_info = stat['月份'].copy()
        chart_info['attr'] = ['3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月']
        chart_info['name'] = player

        return jsonify(chart_info)
    else:
        return redirect(url_for('index'))

從db_connect那邊import get_hitter_stat(),回傳的資料會是dict,而我document是用選手名稱存的,選手底下會有月份、左右打、通算等等的分類,而因為是dict型態,我可以直接取得,但是我取得的資料中沒有選手名稱,所以我將它copy至新的dict,並把球員名稱加進去,attr則是之後繪圖會用到的。

下一篇會利用這些資料來進行繪圖(使用echart)


上一篇
Day 4: 從爬蟲到架站-傳送資料(1)
下一篇
Day 6: 從爬蟲到架站-echart繪圖
系列文
從爬蟲到架站21
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言